iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 18
0
自我挑戰組

前端成長日記系列 第 18

前後端溝通~

  • 分享至 

  • xImage
  •  

今天講前後端溝通~ 這件事可以想像去麥當勞點餐,跟店員點一個二號餐:

  • 前端:客人
  • AJAX:櫃台人員
  • 後端:作餐人員+麥當勞公司+農夫...
  • 請求參數:"二號餐"
  • 回傳資料(JSON):漢堡和薯條本人~

幾個關鍵字:
AJAX(Asynchronous JavaScript and XML)
前後端溝通方式~

API(Application Interface, 應用程式介面)
由URL和請求參數組合而成。

JSON
一種特定的資料格式,由陣列、物件組合而成。

二話不說我們來看範例,這是最基本的寫法~

1.new 出一個 XMLHttpRequest 物件

let xhr = new XMLHttpRequest();

2.提供參數

(告訴店員餐點名字~)

let url = "https://www.thef2e.com/api/isSignUp";
let params = "email=" + email;

url這邊是存放資料的主機和檔案位置,裡面會存放大量資料,有時候回傳資料會因為不同人而有所不同。例如要查詢有沒有成功報名活動,輸入會員帳號(這邊假設是Email),就至少有兩種不同結果(成功或失敗)。而這樣提供一個url和參數格式,類似資料出口的介面,就稱為API(應用程式介面),API有公開也有私有的,只要開發者按照API的規範去溝通,就可以使用到特定資料。例如政府公開資料就是一種。

3.發出請求

(點餐~)

xhr.open("POST", url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

4.得到結果

(漢堡本人,或者賣完了!?)

xhr.onreadystatechange =  function() {
    if ( xhr.readyState === 4 && xhr.status === 200) {
    
    let result = JSON.parse(xhr.responseText);
    if( result.success === true) {
        //成功走這邊~
	} else {
		//失敗走這邊~
            }
        }
    }
	xhr.send(params);
}

XHR 是實現前後端溝通的物件,這個物件提供給程式設計師好用的使用方法,而 ES6 也提供了更強大的 Promise 物件來實現前後端溝通。今天先這樣囉~


上一篇
專題魔王
下一篇
瀏覽器樣式除錯
系列文
前端成長日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
expord1313
iT邦新手 5 級 ‧ 2019-03-26 11:44:53

我覺得應該是

前端:櫃台人員
AJAX:點餐機(POS機?)
後端:作餐人員+麥當勞公司+農夫...
請求參數:"二號餐"
回傳資料(JSON):漢堡和薯條本人~

user觸發事件給櫃檯人員
櫃台人員用點餐系統跟做餐人員請求二號餐
做餐人員處理完二號餐回傳給櫃台人員
櫃台人員再把餐交給user

我要留言

立即登入留言